package com.esunny.resourcevisualization.service;

import com.esunny.resourcevisualization.domain.entity.EnumGroup;
import com.esunny.resourcevisualization.domain.entity.EnumItem;
import com.esunny.resourcevisualization.domain.request.EnumDto;
import com.esunny.resourcevisualization.domain.response.ReturnStructure;

import java.util.List;

/**
 * @version 1.0.0.0
 * @InterfaceName EnumService
 * @Description 枚举组、枚举项逻辑处理
 * @Author baochencong
 * @Date 2020/9/26 13:08
 */
public interface EnumService {

    /**
     * 添加枚举数据
     *
     * @param enumDto 枚举组信息和至少一个枚举项
     * @return 添加操作结果信息
     */
    ReturnStructure addEnumData(EnumDto enumDto);

    /**
     * 添加枚举项
     *
     * @param enumDto 枚举组英文名和枚举项
     * @return 添加枚举项结果信息
     */
    List<EnumItem> addEnumItem(EnumDto enumDto);

    /**
     * 通过枚举组英文名删除枚举组
     *
     * @param groupName 枚举组名
     * @return 删除枚举组结果
     */
    ReturnStructure deleteEnumGroupByGroupName(String groupName);

    /**
     * 通过枚举项id删除枚举项
     *
     * @param itemId 枚举项id
     * @return 删除枚举项结果信息
     */
    ReturnStructure deleteEnumItemByItemId(int itemId);

    /**
     * 修改枚举组信息
     *
     * @param enumGroup 枚举组信息
     * @return 修改枚举组信息结果
     */
    ReturnStructure updateEnumGroup(EnumGroup enumGroup);

    /**
     * 通过枚举组英文名获取枚举租信息
     *
     * @param groupName 枚举组英文名
     * @return 枚举组
     */
    EnumGroup getEnumGroupByGroupName(String groupName);

    /**
     * 获取枚举组列表
     *
     * @return 枚举组列表
     */
    List<EnumGroup> getEnumGroupList();

    /**
     * 通过枚举组英文名获取枚举项
     *
     * @param groupName 枚举组英文名
     * @return 枚举项列表
     */
    List<EnumItem> getEnumItemByGroupName(String groupName);

    /**
     * 通过枚举组id获取枚举项
     *
     * @param groupId 枚举组id
     * @return 枚举项列表
     */
    List<EnumItem> getEnumItemListByGroupId(int groupId);
}
